--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 486eff3dea140a40d7f9259c319553e0e1fd474d
Parents : f2181ed
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-13T09:12:08-05:00
refactor: improve comments
Changes
21 files changed, 60 insertions(+), 60 deletions(-)
Diff
diff --git a/meshchatx/meshchat.py b/meshchatx/meshchat.py
index 0c1c3366..5938a1d8 100644
--- a/meshchatx/meshchat.py
+++ b/meshchatx/meshchat.py
@@ -4912,7 +4912,7 @@ class ReticulumMeshChat:
{"enabled": False, "message": "Pass --memory-diag to enable"},
)
# tracemalloc.snapshot() + gc.get_objects() are CPU-bound and
- # block the event loop for tens of seconds; run off-loop.
+ # block the event loop for tens of seconds, so run off-loop.
report = await asyncio.to_thread(self._mem_diag.report)
return web.json_response(report)
@@ -7104,7 +7104,7 @@ class ReticulumMeshChat:
# parse interfaces from config
interfaces = InterfaceConfigParser.parse(config)
- # I2P must not be imported from files; hide it from the picker.
+ # I2P must not be imported from files, so hide it from the picker.
interfaces = [
iface
for iface in interfaces
@@ -7279,7 +7279,7 @@ class ReticulumMeshChat:
max_msg_size=50 * 1024 * 1024,
)
await websocket_response.prepare(request)
- # aiohttp WebSocketResponse does not expose .request; keep it for
+ # aiohttp WebSocketResponse does not expose .request, so keep it for
# session checks on authenticated mutators (nomadnet downloads, etc).
websocket_response._meshchatx_request = request
@@ -7320,7 +7320,7 @@ class ReticulumMeshChat:
)
await websocket_response.prepare(request)
- # Chaquopy Android has no LXST host audio device; always allow the websocket bridge.
+ # Chaquopy Android has no LXST host audio device, so always allow the websocket bridge.
web_audio_allowed = (
self.web_audio_bridge.config_enabled() or _is_chaquopy_android()
)
@@ -7392,7 +7392,7 @@ class ReticulumMeshChat:
return _N()
- # psutil often raises on Android (restricted /proc); never fail the whole payload.
+ # psutil often raises on Android (restricted /proc), so never fail the whole payload.
memory_info = _safe_memory_info()
net_io = _safe_net_io()
@@ -7886,7 +7886,7 @@ class ReticulumMeshChat:
return web.json_response(content)
- # repository server (wheels + uploads; optional in-process plain HTTP)
+ # repository server (wheels + uploads, and optional in-process plain HTTP)
@routes.get("/api/v1/repository-server/status")
async def repository_server_status(_request):
mgr = self.repository_server_manager
@@ -8735,7 +8735,7 @@ class ReticulumMeshChat:
if disc_val is False or str(disc_val).lower() in ("false", "no", "0"):
reticulum_config.pop("autoconnect_discovered_interfaces", None)
- # default_bootstrap_only is a MeshChatX-only setting; do NOT write it
+ # default_bootstrap_only is a MeshChatX-only setting, so do NOT write it
# to Reticulum config so discovered/auto-connected interfaces are
# never affected. Clean up any stale value in Reticulum config.
reticulum_config.pop("default_bootstrap_only", None)
@@ -9872,7 +9872,7 @@ class ReticulumMeshChat:
active_call["path_interface"] = iface_name.strip()
break
- # Try multiple destination hashes; depending on LXST state, the
+ # Try multiple destination hashes. Depending on LXST state, the
# active call hash is not always the route-resolvable destination.
for candidate_hex in [
remote_telephony_hash,
@@ -11611,7 +11611,7 @@ class ReticulumMeshChat:
if router is not None:
try:
state = router.propagation_transfer_state
- # COMPLETE is terminal; expose idle so the UI does not keep
+ # COMPLETE is terminal, so expose idle so the UI does not keep
# looking "busy" after a finished auto/manual sync.
if state == router.PR_COMPLETE:
router.propagation_transfer_state = router.PR_IDLE
@@ -11983,7 +11983,7 @@ class ReticulumMeshChat:
},
)
- # proactively ask Reticulum to resolve or refresh path (non-blocking HTTP; discovery runs in background)
+ # proactively ask Reticulum to resolve or refresh path (non-blocking HTTP, and discovery runs in background)
@routes.post("/api/v1/destination/{destination_hash}/request-path")
async def destination_request_path_fire(request):
destination_hash = request.match_info.get("destination_hash", "")
@@ -16310,7 +16310,7 @@ class ReticulumMeshChat:
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Cross-Origin-Resource-Policy"] = "cross-origin"
if path.startswith("/rnode-flasher/"):
- # Standalone RNode Flasher uses Vue in-DOM templates; compileToFunction
+ # Standalone RNode Flasher uses Vue in-DOM templates. The compileToFunction
# relies on new Function(), which requires unsafe-eval.
script_sources = [
"'self'",
@@ -16328,7 +16328,7 @@ class ReticulumMeshChat:
"blob:",
]
else:
- # wasm-unsafe-eval: Codec2 / sox Emscripten WASM; blob: worklets from object URLs
+ # wasm-unsafe-eval: Codec2 / sox Emscripten WASM, and blob: worklets from object URLs
script_sources = ["'self'", "'wasm-unsafe-eval'", "blob:"]
style_sources = ["'self'", "'unsafe-inline'"]
@@ -16655,7 +16655,7 @@ class ReticulumMeshChat:
# Serve Reticulum docs from user-uploaded storage with a fallback to the
# bundled offline copy shipped under <public>/reticulum-docs-bundled/current.
- # No remote network fallback exists; users supply replacements via upload.
+ # No remote network fallback exists, so users supply replacements via upload.
async def reticulum_docs_handler(request):
dm = self.docs_manager
if dm is None:
@@ -16913,7 +16913,7 @@ class ReticulumMeshChat:
return True
# Kick off the LXMF request on a worker thread. Identity.recall and link
- # setup can block on multiprocessing pipes; running inline would stall the
+ # setup can block on multiprocessing pipes. Running inline would stall the
# HTTP handler and race with cancel_propagation_node_requests (EOFError).
asyncio.create_task(self._request_propagation_node_messages(context=ctx))
@@ -17065,7 +17065,7 @@ class ReticulumMeshChat:
value = self._coerce_int(data["lxmf_inbound_stamp_cost"])
if value is None:
value = self.config.lxmf_inbound_stamp_cost.get()
- # 0 disables inbound stamps; otherwise clamp to 1-254 (LXMF/LXMRouter)
+ # 0 disables inbound stamps, and otherwise clamp to 1-254 (LXMF/LXMRouter)
if value < 0:
value = 0
elif value >= 255:
@@ -18951,7 +18951,7 @@ class ReticulumMeshChat:
},
)
return
- # data_b64 is msgpack-encoded request payload; decode to a native value
+ # data_b64 is msgpack-encoded request payload. Decode to a native value
# so RNS.Link.request embeds it in the wire envelope correctly.
data_b64 = data.get("data_b64")
try:
@@ -19195,7 +19195,7 @@ class ReticulumMeshChat:
plugin_manager.on_rns_link_event(payload)
async def websocket_broadcast(self, data):
- # Serialize: concurrent callers must not interleave; the second snapshot must run
+ # Serialize: concurrent callers must not interleave. The second snapshot must run
# only after the first broadcast has finished mutating the live client list.
async with self._websocket_broadcast_lock:
dead = []
@@ -21219,8 +21219,8 @@ class ReticulumMeshChat:
False, "skipped_for_propagated", False
)
else:
- # Reticulum keeps a live path table; entries expire when peers move or links drop.
- # We cannot replay "old" paths from the app layer — Transport.request_path refreshes discovery.
+ # Reticulum keeps a live path table, and entries expire when peers move or links drop.
+ # We cannot replay "old" paths from the app layer. Transport.request_path refreshes discovery.
path_outcome = await self._await_transport_path(destination_hash_bytes)
destination_identity = self.recall_identity(destination_hash)
diff --git a/meshchatx/src/backend/bot_handler.py b/meshchatx/src/backend/bot_handler.py
index 1eb18cd8..1a68c1fa 100644
--- a/meshchatx/src/backend/bot_handler.py
+++ b/meshchatx/src/backend/bot_handler.py
@@ -405,7 +405,7 @@ class BotHandler:
proc.wait(timeout=2)
if self._is_pid_alive(pid):
taskkill = shutil.which("taskkill") or "taskkill"
- # Process may already have exited; suppress "not found" noise.
+ # Process may already have exited, so suppress "not found" noise.
subprocess.run(
[taskkill, "/PID", str(pid), "/T", "/F"],
check=False,
@@ -612,7 +612,7 @@ class BotHandler:
os.kill(pid, 0)
except OSError:
return False
- # Reaped children are gone; unreaped zombies still answer kill(0).
+ # Reaped children are gone, but unreaped zombies still answer kill(0).
if sys.platform.startswith("linux"):
try:
with open(f"/proc/{pid}/status", encoding="utf-8") as f:
diff --git a/meshchatx/src/backend/database/messages.py b/meshchatx/src/backend/database/messages.py
index a329db82..5257cd1c 100644
--- a/meshchatx/src/backend/database/messages.py
+++ b/meshchatx/src/backend/database/messages.py
@@ -602,7 +602,7 @@ class MessageDAO:
""",
)
- # Only outbound messages can get stuck mid-send; incoming messages are
+ # Only outbound messages can get stuck mid-send, as incoming messages are
# never failed (we already received them).
self.provider.execute(
"""
diff --git a/meshchatx/src/backend/landlock_sandbox.py b/meshchatx/src/backend/landlock_sandbox.py
index 0d33e415..39e92343 100644
--- a/meshchatx/src/backend/landlock_sandbox.py
+++ b/meshchatx/src/backend/landlock_sandbox.py
@@ -231,7 +231,7 @@ def _collect_read_roots() -> list[str]:
"/etc",
"/bin",
"/sbin",
- # RNS get_interface_stats() uses psutil for rss; psutil reads /proc/self.
+ # RNS get_interface_stats() uses psutil for rss, and psutil reads /proc/self.
"/proc",
}
for path in sys.path:
@@ -247,7 +247,7 @@ def _collect_read_roots() -> list[str]:
if existing:
roots.add(existing)
# Allow execve of the running interpreter (uv-managed CPython lives outside
- # /usr; bots / self-check / rnsh re-spawn sys.executable under Landlock).
+ # /usr, and bots, self-check, or rnsh re-spawn sys.executable under Landlock).
for candidate in (sys.executable, os.path.realpath(sys.executable)):
if not candidate:
continue
diff --git a/meshchatx/src/backend/map_manager.py b/meshchatx/src/backend/map_manager.py
index 4ce26502..b4b2e3cd 100644
--- a/meshchatx/src/backend/map_manager.py
+++ b/meshchatx/src/backend/map_manager.py
@@ -216,7 +216,7 @@ class MapManager:
# bbox: [min_lon, min_lat, max_lon, max_lat]
min_lon, min_lat, max_lon, max_lat = bbox
- # collect all tiles to download (unique keys; bbox can span tile seams)
+ # collect all tiles to download (unique keys, since bbox can span tile seams)
tiles_to_download = []
seen = set()
zoom_levels = range(min_zoom, max_zoom + 1)
diff --git a/meshchatx/src/backend/map_overlay_manager.py b/meshchatx/src/backend/map_overlay_manager.py
index 93dd651a..140866b5 100644
--- a/meshchatx/src/backend/map_overlay_manager.py
+++ b/meshchatx/src/backend/map_overlay_manager.py
@@ -348,7 +348,7 @@ class MapOverlayManager:
max_conc = self._cfg_int("map_overlay_max_concurrent_jobs")
if self._job_semaphore is None:
self._job_semaphore = asyncio.Semaphore(max_conc)
- # Resize not supported mid-flight; new semaphore if limit changed and idle
+ # Resize not supported mid-flight. Create a new semaphore if limit changed and idle.
async with self._job_semaphore:
job = self._jobs[job_id]
try:
diff --git a/meshchatx/src/backend/persistent_log_handler.py b/meshchatx/src/backend/persistent_log_handler.py
index ede1bc5a..b25a93a3 100644
--- a/meshchatx/src/backend/persistent_log_handler.py
+++ b/meshchatx/src/backend/persistent_log_handler.py
@@ -36,7 +36,7 @@ class PersistentLogHandler(logging.Handler):
self.known_ips = set()
self.known_uas = set()
- # Entropy tracking — level counts over a sliding 60s window
+ # Entropy tracking: level counts over a sliding 60s window
self._level_events = collections.deque(maxlen=10000)
self._error_events = collections.deque(maxlen=10000)
diff --git a/meshchatx/src/backend/rns_link_manager.py b/meshchatx/src/backend/rns_link_manager.py
index 8325396b..f7cc11e3 100644
--- a/meshchatx/src/backend/rns_link_manager.py
+++ b/meshchatx/src/backend/rns_link_manager.py
@@ -14,16 +14,16 @@ from meshchatx.src.backend.reticulum_pathfinding import ReticulumLike
# Cache of established RNS Links keyed by (aspect_str, destination_hash_bytes).
-# Kept separate from nomadnet_downloader.nomadnet_cached_links — the two caches
+# Kept separate from nomadnet_downloader.nomadnet_cached_links, as the two caches
# may merge in the future if NomadNet is ported onto this generic Links API.
rns_cached_links: dict[tuple[str, bytes], "RNS.Link"] = {}
_rns_link_last_used: dict[tuple[str, bytes], float] = {}
_rns_links_lock = threading.Lock()
# Per-cache-key count of consecutive RNS.Link request failures. Reset on
-# successful response; cleared whenever the cached link at the key is
-# replaced or evicted. Guarded by _rns_links_lock (same lock as the cache —
-# the two are mutated together).
+# successful response, and cleared whenever the cached link at the key is
+# replaced or evicted. Guarded by _rns_links_lock (same lock as the cache,
+# as the two are mutated together).
_link_failure_counts: dict[tuple[str, bytes], int] = {}
# Number of consecutive request failures on a cached link that triggers a
@@ -283,7 +283,7 @@ class RnsLinkManager:
):
await asyncio.sleep(_POLL_INTERVAL_S)
except asyncio.CancelledError:
- # No link object yet — nothing to tear down. Just propagate.
+ # No link object yet, so there is nothing to tear down. Just propagate.
raise
if not RNS.Transport.has_path(destination_hash):
return None, False, "no_path_to_destination"
@@ -408,7 +408,7 @@ class RnsLinkManager:
def _wrapped_failed(receipt=None, _cb=failed_callback, _key=key):
_count, recycled = _record_failure_and_maybe_recycle(_key)
if recycled:
- # The cached link has been torn down and evicted; the next
+ # The cached link has been torn down and evicted, so the next
# rns.link.request to this destination will re-establish.
# The existing link_closed event already fires from
# _on_link_closed via link.teardown(), so clients that watch
@@ -417,7 +417,7 @@ class RnsLinkManager:
# Future enhancement (option B from design): broadcast a
# dedicated rns.link.event with
# event="link_recycled_after_failures", failures=_count,
- # destination_hash=_key[1].hex(), aspect=_key[0] — useful
+ # destination_hash=_key[1].hex(), aspect=_key[0], which is useful
# for UIs that want to surface "link reset after N failures"
# diagnostics distinct from a plain link_closed.
pass
diff --git a/meshchatx/src/backend/rns_startup_recovery.py b/meshchatx/src/backend/rns_startup_recovery.py
index 54733149..e6a86bd4 100644
--- a/meshchatx/src/backend/rns_startup_recovery.py
+++ b/meshchatx/src/backend/rns_startup_recovery.py
@@ -297,7 +297,7 @@ def apply_startup_recovery_step(
if attempt <= 0:
if i2p_support.disable_all_i2p_in_config(config_path):
- # Names unknown here; report a synthetic marker for logs/tests.
+ # Names unknown here, so report a synthetic marker for logs/tests.
disabled.append("__i2p__")
return disabled
diff --git a/meshchatx/src/backend/self_check.py b/meshchatx/src/backend/self_check.py
index 35df5dac..3feae8e3 100644
--- a/meshchatx/src/backend/self_check.py
+++ b/meshchatx/src/backend/self_check.py
@@ -217,7 +217,7 @@ def _check_storage_lock_soft_fallback(lock_dir: str) -> dict[str, str]:
from meshchatx.src.backend.storage_lock import StorageLock, StorageLockError
if sys.platform == "win32":
- # Windows uses msvcrt; soft fallback is Unix-only. Still verify a second
+ # Windows uses msvcrt, so soft fallback is Unix-only. Still verify a second
# native holder is rejected (covered above) and return ok here.
return _status(True)
@@ -782,7 +782,7 @@ async def _probe_rns_link_api(ws: Any, *, timeout: float = 10.0) -> dict[str, st
status = payload.get("status")
if status not in ("success", "failure"):
return _status(False, f"unexpected status={status!r}")
- # No cached link is expected in self-check; failure is the normal path.
+ # No cached link is expected in self-check, so failure is the normal path.
if status == "failure" and payload.get("failure_reason") not in (
None,
"no_active_link",
@@ -1006,7 +1006,7 @@ async def _run_web_api_probes(app: Any) -> dict[str, dict[str, str]]:
"ws closed without first message",
)
else:
- # Connection works; first push may be absent under test doubles.
+ # Connection works, and first push may be absent under test doubles.
results["websocket_good"] = _status(True)
else:
if msg.type not in (WSMsgType.TEXT, WSMsgType.BINARY):
diff --git a/meshchatx/src/backend/web_audio_bridge.py b/meshchatx/src/backend/web_audio_bridge.py
index d213b00d..224f55d6 100644
--- a/meshchatx/src/backend/web_audio_bridge.py
+++ b/meshchatx/src/backend/web_audio_bridge.py
@@ -32,18 +32,18 @@ class WebAudioSource(LocalSource):
self.bitdepth = 16
def start(self):
- # Nothing to start; frames are pushed from the websocket thread.
+ # Nothing to start, as frames are pushed from the websocket thread.
pass
def stop(self):
- # Nothing to stop; kept for interface compatibility.
+ # Nothing to stop, but kept for interface compatibility.
pass
def can_receive(self, from_source=None):
return True
def handle_frame(self, frame, source=None):
- # Not used; frames are pushed via push_pcm.
+ # Not used, as frames are pushed via push_pcm.
pass
def push_pcm(self, pcm_bytes: bytes):
diff --git a/meshchatx/src/frontend/components/call/CallPage.vue b/meshchatx/src/frontend/components/call/CallPage.vue
index 00af0f74..93c56374 100644
--- a/meshchatx/src/frontend/components/call/CallPage.vue
+++ b/meshchatx/src/frontend/components/call/CallPage.vue
@@ -2686,7 +2686,7 @@ export default {
return;
}
- // Real PCM levels are preferred; this is a fallback when bridge/native
+ // Real PCM levels are preferred, and this is a fallback when bridge/native
// audio telemetry is unavailable but link stats are present.
if (this.audioWs || this.useAndroidNativeTelephone) {
this.prevCallTxBytes = Number(newCall.tx_bytes || 0);
@@ -4248,7 +4248,7 @@ export default {
}
let hashToCall = identityHash.trim();
- // Accept lxmf:// URIs or pasted text; RNS truncated hashes are 32 hex chars
+ // Accept lxmf:// URIs or pasted text, and RNS truncated hashes are 32 hex chars
const hexMatch = hashToCall.match(/[0-9a-fA-F]{32,64}/);
if (hexMatch) {
hashToCall = hexMatch[0].slice(0, 32);
diff --git a/meshchatx/src/frontend/components/interfaces/Interface.vue b/meshchatx/src/frontend/components/interfaces/Interface.vue
index 188b903d..fc35f516 100644
--- a/meshchatx/src/frontend/components/interfaces/Interface.vue
+++ b/meshchatx/src/frontend/components/interfaces/Interface.vue
@@ -312,7 +312,7 @@ export default {
const st = this.iface._stats;
if (!st || typeof st !== "object") {
// If stats are missing, the interface is likely detached or
- // not yet initialised; show down rather than unknown.
+ // not yet initialised, so show down rather than unknown.
return false;
}
if ("status" in st) {
diff --git a/meshchatx/src/frontend/components/messages/ConversationViewer.vue b/meshchatx/src/frontend/components/messages/ConversationViewer.vue
index a4d37e1f..8b598550 100644
--- a/meshchatx/src/frontend/components/messages/ConversationViewer.vue
+++ b/meshchatx/src/frontend/components/messages/ConversationViewer.vue
@@ -2497,7 +2497,7 @@ export default {
// fetch contacts for suggestions
this.fetchContacts();
- // Propagation sync chrome lives in App; this page only triggers it.
+ // Propagation sync chrome lives in App, and this page only triggers it.
this.propagationStatusInterval = null;
this._scheduleOutboundSendStatusTick();
@@ -3242,7 +3242,7 @@ export default {
},
async loadPrevious() {
// Pagination requests must not overlap. Initial page loads (empty thread) must still run
- // if a previous peer's fetch or a scroll load left isLoadingPrevious true; otherwise
+ // if a previous peer's fetch or a scroll load left isLoadingPrevious true, otherwise
// initialLoad clears chatItems and loadPrevious returns without fetching (empty UI).
if (this.isLoadingPrevious && this.oldestMessageId != null) {
return;
@@ -7157,7 +7157,7 @@ export default {
return;
}
- // Optimistic UI update; roll back if the server call fails.
+ // Optimistic UI update, and roll back if the server call fails.
conversation.is_unread = false;
try {
diff --git a/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue b/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue
index c48171a6..33e687d8 100644
--- a/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue
+++ b/meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue
@@ -208,7 +208,7 @@ export default {
this.refreshPhysicsEnabled();
},
searchQuery() {
- // Debounce full rebuilds while typing; filter still runs on existing data.
+ // Debounce full rebuilds while typing, as the filter still runs on existing data.
if (this.searchDebounceTimer) clearTimeout(this.searchDebounceTimer);
this.searchDebounceTimer = setTimeout(() => {
this.searchDebounceTimer = null;
@@ -623,7 +623,7 @@ export default {
interaction: {
tooltipDelay: 100,
hover: true,
- // Hide edges while dragging/zooming — biggest win vs upstream
+ // Hide edges while dragging/zooming, which is the biggest win vs upstream
// for large graphs (upstream redraws every edge every frame).
hideEdgesOnDrag: true,
hideEdgesOnZoom: true,
@@ -636,7 +636,7 @@ export default {
enabled: this.enablePhysics,
solver: "barnesHut",
barnesHut: {
- // Match upstream gravity; avoidOverlap is O(n) per tick
+ // Match upstream gravity, as avoidOverlap is O(n) per tick
// and is the main reason we felt slower than MeshChat.
gravitationalConstant: -5000,
springConstant: 0.04,
@@ -669,7 +669,7 @@ export default {
strokeColor: isDarkMode ? "rgba(9, 9, 11, 0.95)" : "rgba(255, 255, 255, 0.95)",
},
// Canvas shadows are by far the most expensive per-node
- // operation in vis-network. Disable globally; the borders
+ // operation in vis-network. Disable globally, as the borders
// and circular-image rendering remain visually distinct.
shadow: false,
},
@@ -1059,7 +1059,7 @@ export default {
color: isDarkMode ? "#f87171" : "#ef4444",
opacity: 1,
},
- // Solid wider stroke (no arrows) — arrows are redrawn every
+ // Solid wider stroke (no arrows), since arrows are redrawn every
// physics frame and dominate canvas cost on large meshes.
width: 3,
length: 200,
@@ -1362,8 +1362,8 @@ export default {
id: edgeId,
from: entry.interface,
to: entry.hash,
- // Direct = brighter/thicker; multi-hop = cooler/thinner.
- // No dashes/arrows — both force expensive per-frame path work.
+ // Direct = brighter/thicker, and multi-hop = cooler/thinner.
+ // No dashes/arrows, as both force expensive per-frame path work.
color: directHop ? this.directEdgeColor(isDarkMode) : this.multiHopEdgeColor(isDarkMode),
width: directHop ? 2.5 : 1,
hidden: false,
diff --git a/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkPage.vue b/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkPage.vue
index e7310c91..a2cce194 100644
--- a/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkPage.vue
+++ b/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkPage.vue
@@ -1815,7 +1815,7 @@ export default {
return;
}
- // update current route (skipped while embedded; the browser shell owns routing)
+ // update current route (skipped while embedded, as the browser shell owns routing)
if (this.embedded) {
this.$emit("navigate", {
destinationHash: destinationHash,
diff --git a/meshchatx/src/frontend/js/WebSocketConnection.js b/meshchatx/src/frontend/js/WebSocketConnection.js
index e782fe3a..c5d9567c 100644
--- a/meshchatx/src/frontend/js/WebSocketConnection.js
+++ b/meshchatx/src/frontend/js/WebSocketConnection.js
@@ -199,7 +199,7 @@ class WebSocketConnection {
});
this.ws.addEventListener("error", () => {
- // close event will follow; reconnect scheduled there
+ // close event will follow, and reconnect is scheduled there
});
this.ws.onmessage = (message) => {
diff --git a/meshchatx/src/frontend/js/nomadFavouritesLayoutStore.js b/meshchatx/src/frontend/js/nomadFavouritesLayoutStore.js
index 673d4034..8e5e206a 100644
--- a/meshchatx/src/frontend/js/nomadFavouritesLayoutStore.js
+++ b/meshchatx/src/frontend/js/nomadFavouritesLayoutStore.js
@@ -238,7 +238,7 @@ async function flushPendingSave(api) {
}
try {
const response = await api.put("/api/v1/favourites/layout", { layout });
- // A newer save may have arrived while this PUT was in flight; prefer that.
+ // A newer save may have arrived while this PUT was in flight, so prefer that.
if (pendingSaveLayout) {
continue;
}
diff --git a/meshchatx/src/frontend/js/qrScannerUtils.js b/meshchatx/src/frontend/js/qrScannerUtils.js
index 598bd8d3..d5b914c1 100644
--- a/meshchatx/src/frontend/js/qrScannerUtils.js
+++ b/meshchatx/src/frontend/js/qrScannerUtils.js
@@ -91,7 +91,7 @@ export async function startCameraStream() {
try {
await track.applyConstraints({ advanced: [{ focusMode: "continuous" }] });
} catch {
- // Optional; some WebViews reject advanced focus constraints.
+ // Optional, as some WebViews reject advanced focus constraints.
}
}
}
diff --git a/meshchatx/src/frontend/js/rnode/transports/WifiTransport.js b/meshchatx/src/frontend/js/rnode/transports/WifiTransport.js
index 03b09829..87657021 100644
--- a/meshchatx/src/frontend/js/rnode/transports/WifiTransport.js
+++ b/meshchatx/src/frontend/js/rnode/transports/WifiTransport.js
@@ -92,7 +92,7 @@ export default class WifiTransport extends Transport {
}
async open() {
- // No persistent stream; OTA upload is one-shot. Kept to keep API symmetric.
+ // No persistent stream, as OTA upload is one-shot. Kept to keep API symmetric.
this.opened = true;
}
diff --git a/meshchatx/src/frontend/main.js b/meshchatx/src/frontend/main.js
index 7dd9ffaa..88e2c58f 100644
--- a/meshchatx/src/frontend/main.js
+++ b/meshchatx/src/frontend/main.js
@@ -469,7 +469,7 @@ if (networkReady) {
try {
router.replace({ name: "interfaces" });
} catch {
- // Route may not exist yet during early boot; banner still guides the user.
+ // Route may not exist yet during early boot, but the banner still guides the user.
}
}
}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────